package com.deliccio.controller;

import java.util.List;

import javax.servlet.http.HttpSession;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;

import com.deliccio.entitys.Cliente;
import com.deliccio.entitys.Menu;
import com.deliccio.entitys.Parametros;
import com.deliccio.entitys.Ranking;
import com.deliccio.entitys.Sucursales;
import com.deliccio.entitys.Usuario;
import com.deliccio.service.PrincipalService;
import com.deliccio.util.Constantes;

@Controller
@RequestMapping("/home")
public class PrincipalController  {

	private static final Logger logger = LoggerFactory.getLogger(PrincipalController.class);
			
	@Autowired
	private PrincipalService principalService;
		
	
	@RequestMapping(method=RequestMethod.GET)
	public String obtenerListaTopPlatos(@RequestParam(required=false) Integer inter,Model model,HttpSession session){		
		//session.removeAttribute(Constantes.SESION_USUARIO);
		Usuario usuario=(Usuario)session.getAttribute(Constantes.SESION_USUARIO);
		Cliente cliente=(Cliente)session.getAttribute(Constantes.SESION_CLIENTE);
		List<Menu> menus=null;
		if(usuario!=null){
			session.setAttribute(Constantes.SESION_USUARIO,usuario);
			menus=principalService.obtenerMenusUsuario(usuario);
		}else
			if(cliente!=null){
			session.setAttribute(Constantes.SESION_CLIENTE,cliente);		
			menus=principalService.obtenerMenusCliente(cliente);
			}
		if(usuario==null&&cliente==null){
			menus=principalService.obtenerMenus();
		}
		
		if(menus!=null){
			model.addAttribute("menus",menus);
		}
		System.out.println("menus:"+menus);
		List<Parametros> lstTiposConjuntos=principalService.listaTiposConjuntos(); 
		principalService.cargarImagen(lstTiposConjuntos);
		model.addAttribute("lstTiposConjuntos",lstTiposConjuntos);
		session.setAttribute(Constantes.SESION_COD_INTER,inter);		
		List<Ranking> lstProductos = principalService.listaProductos();
		model.addAttribute("lstProductos",lstProductos);
		
		return "home";
	}
	

	
	@RequestMapping(value="/obtenerPrincipal",method=RequestMethod.GET)
	public String principal(Model model,HttpSession session){			
		List<Sucursales> lstsucursales=principalService.obtenerSucursales();
		model.addAttribute("lstsucursales",lstsucursales);	
		return "principal/principal";
	}
		

	
}
